home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
libs
/
newreqlibs17.lzh
/
NewReqLibs
/
NewReqLibs.doc
next >
Wrap
Text File
|
1996-10-05
|
14KB
|
486 lines
$VER: NewReqLibs.doc 1.7 (5.10.96)
============================================================
October 5, 1996
Torbjörn Andersson
presents
NewReqLibs 1.7
Freeware
============================================================
1. Contents
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Contents ................................................. 1
Introduction ............................................. 2
Requirements ............................................. 3
Installation ............................................. 4
TRTPatch ................................................. 5
Notes about the new asl.library .......................... 6
Notes about the new req.library .......................... 7
History .................................................. 8
Credits .................................................. 9
Distribution ............................................ 10
2. Introduction
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
NeqReqLibs is something similar to RTPatch by Nico François.
RTPatch forces other libraries to use reqtools.library.
Instead of adding something to disk based libraries, my
solution is to replace them.
In the Libs directory of this distribution you will find the
libraries asl.library and req.library. They are both a
rewrite of the original ones (the standard asl.library and
req.library by Colin Fox and Bruce Dawson).
The new libraries doesn't have any code for putting up their
own requesters, instead they call reqtools.library. If you
install these libraries, programs that use them will
automatically use reqtools.library. The purpose of doing
this is that reqtools.library has better requesters. They
are more powerful, more user-friendly and have the
look-and-feel of kickstart release 2.0.
The main advantage by using NewReqLibs is that they take
less memory, a patch program takes more (both on disk and
when loaded in RAM).
The disadvantage by using each new library might be that
compatibility problems increases. The whole library is
"patched" not just the necessary functions.
In this distribution you will also find the program
TRTPatch. Its main purpose is to patch some kickstart
functions to use reqtools.library.
Note:
Since release 1.6, my req.library uses intuition.library
and asl.library where possible instead. I think everything
should use the standard functions the AmigaOS provides,
except for patches. And the patches here are TRTPatch and my
asl.library, my req.library is only a replacement for the
old one.
3. Requirements
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
NewReqLibs requires reqtools.library by Nico François,
preferably version 38 or higher.
TRTPatch requires kickstart 2.04+.
My req.library requires kickstart 2.04+.
The original asl.library does not work on kickstart releases
lower than 2.0. My one does (except that the screen mode
requester that isn't available in reqtools.library then).
4. Installation
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
This distribution contains three parts to be installed:
· Copy Libs/asl.library to the LIBS: drawer.
· Copy Libs/req.library to the LIBS: drawer.
· Copy TRTPatch to your system and start it every time you
boot.
You can choose freely which parts to install, they work
completely independent of each other.
5. TRTPatch
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
TRTPatch is a program that will do some changes to the OS.
Some functions are patched to use reqtools.library to open a
requester. The patches can't always make use of
reqtools.library and they will then call the original
function. TRTPatch can be started from both Workbench and
CLI.
Usage: TRTPatch [NOTRAP] [NOALERT] [NODISPALERT] [NOTIMEDALERT]
[NOAUTOREQ] [NOEASYREQ] [QUIET]
Explanation of options:
NOTRAP:
Don't patch exec.library/AddTask().
NOALERT:
Don't patch exec.library/Alert().
NODISPALERT:
Don't patch intuition.library/DisplayAlert().
NOTMEDALERT:
Don't patch intuition.library/TimedDisplayAlert().
NOAUTOREQ:
Don't patch intuition.library/AutoRequest().
NOEASYREQ:
Don't patch intuition.library/EasyRequest().
QUIET:
Don't show information about installed patches.
Functions patched:
· exec.library/AddTask().
The default task trap handler doesn't call
exec.library/Alert() through the LVO, and trap handling of
processes use a requester. To make the Alert() patch more
usefull, this AddTask() patch will install a new trap
handler in each task added to the system. This trap handler
switches to user mode and calls exec.library/Alert() through
the LVO.
When this patch is installed, all task that doesn't have its
own custom trap handler will have the same one installed
that the patch installs when new tasks are added.
· exec.library/Alert().
The original function displays an alert number which doesn't
tell you very much, especially if you are not a programmer.
This patch will use reqtools.library to open a nice
requester and display a lot of information.
The title will read "Not enough memory"/"Software Failure"
or "Recoverable Alert", just like the first sentence of the
original Alert().
The address of the task that called Alert() is displayed
together with its task name and eventually cli command name.
The usual alert number is displayed, and information that
could be extracted from it - who caused the alert and why.
A dump of CPU registers are also shown.
There are four responses to choose between -
Continue/Suspend/Reboot and Alert. Continue is the same as
pressing the left mouse button after an original Alert(),
the execution will continue with unpredictable results.
Suspend will stop the execution of the task. Reboot will
reboot the machine. Alert will call the original Alert().
· intuition.library/DisplayAlert().
This patch will try to display the text in a requester
instead. There are five responses to choose between -
LMB/RMB/Suspend/Reboot and Alert. LMB and RMB does the same
as if you pressed the left or right mouse button after an
original DisplayAlert(). Suspend will stop the execution of
the task. Reboot will reboot the machine. Alert will call
the original DisplayAlert().
· intuition.library/TimedDisplayAlert().
Requires kickstart release 3.0. Identical to the
DisplayAlert() patch.
· intuition.library/AutoRequest().
This patch will use reqtools.library for the requester.
· intuition.library/EasyRequest().
Requires kickstart release 2.0. This patch will use
reqtools.library for the requester.
6. Notes about the new asl.library
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Current version emulated is 39.6.
Ignores ASLxx_PositiveText if longer than six chars.
Copies library bases from ReqTools (Intuition, Gfx, DOS,
Utility, GadTools). UtilityBase and GadToolsBase are only
valid on kickstart version 36 and higher.
Doesn't try to open icon.library if kickstart version is
lower than 36, assuming it is disk based.
Tags ignored:
ASLxx_NegativeText
ASLxx_InitialLeftEdge
ASLxx_InitialTopEdge
ASLxx_InitialWidth
ASLxx_InitialHeight
ASLxx_FilterFunc
ASLFR_RejectIcons
ASLFR_RejectPattern
ASLFR_AcceptPattern
ASLFR_FilterDrawers
ASLFO_DoFrontPen
ASLFO_DoBackPen
ASLFO_DoStyle
ASLFO_DoDrawMode
ASLFO_MaxFrontPen
ASLFO_MaxBackPen
ASLFO_ModeList
ASLFO_FrontColors
ASLFO_BackColors
ASLSM_InitialInfoOpened
ASLSM_InitialInfoLeftEdge
ASLSM_InitialInfoTopEdge
ASLSM_CustomSMList
Flags ignored:
FRF_DOWILDFUNC
FRF_FILTERDRAWERS
FRF_REJECTICONS
FOF_DOFRONTPEN
FOF_DOBACKPEN
FOF_DOFONTSTYLE
FOF_DODRAWMODE
FOF_DOWILDFUNC
7. Notes about the new req.library
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Current version emulated is 2.5.
Doesn't make the port "req timer port" public, when using
TextRequest() with a timeout.
The library structure is 48 bytes larger, to hold the
request needed to open console.device. The memory for the
request isn't allocated separately by the library itself.
No extra chip memory is allocated for the images. The image
data is already in a hunk that is loaded into chip memory.
Rexxsyslib.library is never opened, thus rl_RexxSysBase will
always be zero.
Functions:
Center()
SetSize()
SetLocation()
ReadLocation()
ReqFormat()
Dispatch()
- Never tries to open rexxsyslib.library.
- Always returns the value 14.
Fake1()
Fake2()
Fake3()
FileRequester()
- Calls AllocAslRequest()/AslRequest()/FreeAslRequest().
- Pattern:
- The character "*" will be replaced by "#?".
- The contents of frq_Hide is shown (as ~(pattern)), if
frq_Show is 0 or if its buffer is NULL.
- Changes made in the pattern gadget will not be saved
for next call.
- frq_MaxExtendedSelect is ignored.
- frq_numlines is ignored.
- frq_numcolumns is ignored.
- frq_devcolumns is ignored.
- frq_Flags:
- FRQSHOWINFO is supported.
- FRQINFOGADGET is ignored.
- FRQNOHALFCACHE is ignored.
- FRQNOSORT is ignored.
- FRQNODRAG is ignored.
- FRQSAVING is supported.
- FRQLOADING is ignored.
- frq_dirnamescolor is ignored.
- frq_filenamescolor is ignored.
- frq_devicenamescolor is ignored.
- frq_fontnamescolor is ignored.
- frq_fontsizecolor is ignored.
- frq_detailcolor is ignored.
- frq_blockcolor is ignored.
- frq_gadgettextcolor is ignored.
- frq_textmessagecolor is ignored.
- frq_stringnamecolor is ignored.
- frq_stringgadgetcolor is ignored.
- frq_boxbordercolor is ignored.
- frq_gadgetboxcolor is ignored.
- frq_FileBufferPos is ignored.
- frq_FileDispPos is ignored.
- frq_DirBufferPos is ignored.
- frq_DirDispPos is ignored.
- frq_HideBufferPos is ignored.
- frq_HideDispPos is ignored.
- frq_ShowBufferPos is ignored.
- frq_ShowDispPos is ignored.
ColorRequester()
- Calls rtPaletteRequest() (via ExtendedColorRequester()).
DrawBox()
MakeButton()
MakeScrollBar()
PurgeFiles()
- Calls FreeAslRequest()
GetFontHeightAndWidth()
MakeGadget()
MakeString()
MakeProp()
LinkGadget()
LinkStringGadget()
LinkPropGadget()
GetString()
- Calls rtGetString().
- d0=visiblechars is ignored.
RealTimeScroll()
TextRequest()
- Calls EasyRequest(), or
BuildEasyRequest()/SysReqHandler()/FreeSysRequest() if
timeout is specified.
- TR_KeyMask is ignored.
- TR_AbortMask is ignored.
- If no gadgets are specified, the requester will get one
named "Okay" anyway (EasyRequest()-requesters must have
at least one gadget).
GetLong()
- Calls rtGetLong().
RawKeyToAscii()
ExtendedColorRequester()
- Calls rtPaletteRequest().
NewGetString()
- Calls rtGetString() (via GetString()).
- gs_visiblesize is ignored.
8. History
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
1.0 (26.2.95)
· First release.
1.1 (4.3.95)
· Optimized Open()/Close()/Expunge().
Saved 2 (!) bytes.
· Included PatchArp.
· Included new asl.library.
· Changed name from NewReqLib to NewReqLibs.
1.2 (26.3.95)
· Arp: Handles FRF_DoMsgFunc and FRF_DoWildFunc.
· Asl: AslRequest() makes dos.library/IoErr() return
ERROR_NO_FREE_STORE if request is NULL, else 0.
· Asl: Handles ASLxx_PositiveText if not longer than six
chars.
· Asl: Handles ASLxx_IntuiMsgFunc.
· Asl: Some bug fixes.
· Asl: Handles FOF_DOMSGFUNC and FRF_DOMSGFUNC.
· Req: TextRequest() now handles TR_Timeout.
· PatchArp: Cuts off code left over in FileRequest(),
finally resulting in a smaller arp.library. :-)
· Changed function tables to use relative word displacements
instead of absolute function pointers.
Saved lots of bytes. :-)
1.3 (18.6.95)
· Asl: Fixed bug in handling of ASLxx_PositiveText.
· Asl: Fixed bug in handling of FRF_DOMULTISELECT.
· Asl: Fixed bug in Expunge().
1.4 (5.8.95)
· Req: Fixed bug in Center().
· Req: Fixed bug in ReqFormat().
· Included PatchOS.
1.5 (30.1.96)
· Removed installation script.
· Removed PatchArp. I didn't like the idea of modifying
arp.library, and who uses arp anyway?
· Renamed PatchOS to TRTPatch; my RTPatch.
· TRTPatch: Removed enforcer hit.
(caused by calling dos.library/PutStr(0))
· TRTPatch: AutoRequest() and EasyRequest() patches
passed "System Request" when window title was zero, they
now pass a NULL string.
· TRTPatch: Removed options WILDSTAR, NOCLICK and BBLANK.
· Asl: Removed enforcer hit in font requester.
· Asl: When doing multiple selection, the wa_Lock fields in
rf_ArgList was always set to zero.
· Req: Didn't cache directory when cancel was selected.
1.6 (23.9.96)
· Req: Fixed minor bug in ReadLocation().
· TRTPatch: Alert()-patch shows cli command name also.
· Req: Fixed wrong stack handling in RawKeyToAscii().
· Req: Fixed Enforcer hit with timeout option.
· Req: TextRequest() uses intuition.library/EasyRequest(),
or BuildEasyRequest()/SysReqHandler()/FreeSysRequest() if
timeout option is used, and FileRequester() uses
asl.library. (This is instead of reqtools.library.)
· Asl: ASLxx_SleepWindow, ASLSM_DisplayDepth and
ASLSM_OverscanType were not properly handled.
sm_AutoScroll field was always set to zero.
Sets SCREQF_NONSTDMODES.
· TRTPatch: EZREQF_NORETURNKEY is never set anymore.
· TRTPatch: Alert()-patch times out (KS 3.0+).
1.7 (5.10.96)
· Req: Handled FRQHIDEWILDSB wrong.
9. Credits
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Thanks to Nico François for reqtools.library.
10. Distribution
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
NewReqLibs is made by and copyright Torbjörn Andersson. No
commercial usage is allowed without written permission from
the author. Other distribution is allowed if no files in the
original distribution are removed or modified.
Comments/questions etc. are always welcome.
Email:
d95ta@efd.lth.se
Home page:
http://www.efd.lth.se/~d95ta
Home address:
Torbjörn Andersson
Knöppletorp 4379
S-380 31 LÄCKEBY
SWEDEN
I love you - AMIGA